

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>配置选项 &mdash; Ceph Documentation</title>
  

  
  <link rel="stylesheet" href="../../_static/ceph.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/ceph.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/graphviz.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />

  
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="../../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
        <script src="../../_static/jquery.js"></script>
        <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
        <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
        <script src="../../_static/doctools.js"></script>
        <script src="../../_static/sphinx_highlight.js"></script>
    
    <script type="text/javascript" src="../../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../../genindex/" />
    <link rel="search" title="Search" href="../../search/" />
    <link rel="next" title="RBD 重放" href="../rbd-replay/" />
    <link rel="prev" title="Image Encryption" href="../rbd-encryption/" /> 
</head>

<body class="wy-body-for-nav">

   
  <header class="top-bar">
    <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../../" class="icon icon-home" aria-label="Home"></a></li>
          <li class="breadcrumb-item"><a href="../">Ceph 块设备</a></li>
          <li class="breadcrumb-item"><a href="../rbd-operations/">Ceph 块设备运维</a></li>
      <li class="breadcrumb-item active">配置选项</li>
      <li class="wy-breadcrumbs-aside">
            <a href="../../_sources/rbd/rbd-config-ref.rst.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
  </header>
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search"  style="background: #eee" >
          

          
            <a href="../../" class="icon icon-home"> Ceph
          

          
          </a>

          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../search/" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../start/">Ceph 简介</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../install/">安装 Ceph</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../cephadm/">Cephadm</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../rados/">Ceph 存储集群</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../cephfs/">Ceph 文件系统</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../">Ceph 块设备</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../rados-rbd-cmds/">基本命令</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../rbd-operations/">运维</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../rbd-snapshot/">快照</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-exclusive-locks/">互斥锁、独占锁</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-mirroring/">镜像</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-live-migration/">实时迁移</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-persistent-read-only-cache/">永久只读缓存</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-persistent-write-log-cache/">永久写日志缓存</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-encryption/">加密</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">配置选项 (librbd)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#io">通用 IO 选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id2">缓存选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id4">预读选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id5">映像功能</a></li>
<li class="toctree-l4"><a class="reference internal" href="#qos">QoS 选项</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-replay/">RBD 重放</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../rbd-integrations/">对接</a></li>
<li class="toctree-l2"><a class="reference internal" href="../man/">手册页</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/">APIs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../radosgw/">Ceph 对象网关</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mgr/">Ceph 管理器守护进程</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mgr/dashboard/">Ceph 仪表盘</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../monitoring/">监控概览</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../api/">API 文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../architecture/">体系结构</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev/developer_guide/">开发者指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev/internals/">Ceph 内幕</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../governance/">项目管理</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../foundation/">Ceph 基金会</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../ceph-volume/">ceph-volume</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../releases/general/">Ceph 版本（总目录）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../releases/">Ceph 版本（索引）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../security/">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../hardware-monitoring/">硬件监控</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../glossary/">Ceph 术语</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../jaegertracing/">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../translation_cn/">中文版翻译资源</a></li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../">Ceph</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
<div id="dev-warning" class="admonition note">
  <p class="first admonition-title">Notice</p>
  <p class="last">This document is for a development version of Ceph.</p>
</div>
  <div id="docubetter" align="right" style="padding: 5px; font-weight: bold;">
    <a href="https://pad.ceph.com/p/Report_Documentation_Bugs">Report a Documentation Bug</a>
  </div>

  
  <section id="id1">
<h1>配置选项<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h1>
<p>详情见<a class="reference external" href="../../rbd">块设备</a>。</p>
<section id="io">
<h2>通用 IO 选项<a class="headerlink" href="#io" title="Permalink to this heading"></a></h2>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_compression_hint">
<span class="sig-name descname"><span class="pre">rbd_compression_hint</span></span><a class="headerlink" href="#confval-rbd_compression_hint" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>Hint to send to the OSDs on write operations. If set to
<code class="docutils literal notranslate"><span class="pre">compressible</span></code> and the OSD <code class="docutils literal notranslate"><span class="pre">bluestore_compression_mode</span></code> setting is
<code class="docutils literal notranslate"><span class="pre">passive</span></code>, the OSD will attempt to compress data. If set to
<code class="docutils literal notranslate"><span class="pre">incompressible</span></code> and the OSD compression setting is <code class="docutils literal notranslate"><span class="pre">aggressive</span></code>,
the OSD will not attempt to compress data.</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">none</span></code></p>
</dd>
<dt class="field-odd">valid choices<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">none</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">compressible</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">incompressible</span></code></p></li>
</ul>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_read_from_replica_policy">
<span class="sig-name descname"><span class="pre">rbd_read_from_replica_policy</span></span><a class="headerlink" href="#confval-rbd_read_from_replica_policy" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>Policy for determining which OSD will receive read operations.
If set to <code class="docutils literal notranslate"><span class="pre">default</span></code>, each PG’s primary OSD will always be used
for read operations. If set to <code class="docutils literal notranslate"><span class="pre">balance</span></code>, read operations will
be sent to a randomly selected OSD within the replica set. If set
to <code class="docutils literal notranslate"><span class="pre">localize</span></code>, read operations will be sent to the closest OSD
as determined by the CRUSH map. Unlike <code class="docutils literal notranslate"><span class="pre">rbd_balance_snap_reads</span></code>
and <code class="docutils literal notranslate"><span class="pre">rbd_localize_snap_reads</span></code> or <code class="docutils literal notranslate"><span class="pre">rbd_balance_parent_reads</span></code> and
<code class="docutils literal notranslate"><span class="pre">rbd_localize_parent_reads</span></code>, it affects all read operations, not
just snap or parent. Note: this feature requires the cluster to
be configured with a minimum compatible OSD release of Octopus.</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">default</span></code></p>
</dd>
<dt class="field-odd">valid choices<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">default</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">balance</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">localize</span></code></p></li>
</ul>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_default_order">
<span class="sig-name descname"><span class="pre">rbd_default_order</span></span><a class="headerlink" href="#confval-rbd_default_order" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>配置新映像的默认对象尺寸。这个值是作为 2 的幂次用的， 意思是 <code class="docutils literal notranslate"><span class="pre">default_object_size</span> <span class="pre">=</span> <span class="pre">2</span> <span class="pre">^</span>
<span class="pre">rbd_default_order</span></code> 。 配置的值在 12 和 25 （包含）之间时，将转译成从 4KiB 到 32MiB 之间的 2
的幂次。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">22</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</section>
<section id="id2">
<h2>缓存选项<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<aside class="sidebar">
<p class="sidebar-title">内核缓存</p>
<p>Ceph 块设备的内核驱动可利用 Linux 页缓存来提升性能。</p>
</aside>
<p>Ceph 块设备的用户空间实现（即 <code class="docutils literal notranslate"><span class="pre">librbd</span></code> ）不能利用 Linux
页缓存，所以它自己实现了内存缓存，名为“ RBD 缓存”。 RBD 缓存就像硬盘缓存一样工作，当 OS 发送了 barrier 或 flush 请求时，所有脏数据都会写入 OSD ，这意味着只要 VM 会正确地发送回写命令（即内核版本大于 2.6.32 ），使用回写缓存就像用正常的物理硬盘一样安全。此缓存用最近最少使用（ Least Recently Used, LRU ）算法，而且在回写模式下它能合并相邻请求以提高吞吐量。</p>
<p>librbd 缓存默认就是开启的，支持三种缓存策略：
write-around 、 write-back 、 and write-through 。
采用 write-around 和 write-back 策略时，写入会立即返回，
除非没写入存储集群的字节数大于 <code class="docutils literal notranslate"><span class="pre">rbd_cache_max_dirty</span></code> 。
write-around 策略不同于 write-back 策略的地方在于，
它不会用缓存提供读请求服务，这点和 write-back 策略不同，
并因此获得了更高的写入载荷性能。采用 write-through 策略时，
只有在数据的所有副本都存入磁盘后它才返回，
但是读取的可以出自缓存。</p>
<p>在收到回刷请求前，缓存的工作方式类似 write-through 缓存，
是为了确保能让较老的操作系统安全地运作，因为它们不会回刷，
也就不能保证崩溃一致性。</p>
<p>如果禁用了 librbd 缓存，写入和读取操作都是直接发生在存储集群上，
而且写入操作只在数据进入所有副本的磁盘上时才返回。</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>缓存位于客户端的内存中，而且每个 RBD 映像都有自己的缓存。
正因为缓存位于客户端本地，所以，
如果有其他人访问这个映像就不能保证一致性。
在 RBD 之上运行的 GFS 或 OCFS 与这个缓存机制不兼容。</p>
</div>
<p>RBD 选项应该位于 <code class="docutils literal notranslate"><span class="pre">ceph.conf</span></code> 配置文件或中央配置库的 <code class="docutils literal notranslate"><span class="pre">[client]</span></code> 段下，可用选项有：</p>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_cache">
<span class="sig-name descname"><span class="pre">rbd_cache</span></span><a class="headerlink" href="#confval-rbd_cache" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>允许为 RADOS 块设备提供缓存。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_cache_policy">
<span class="sig-name descname"><span class="pre">rbd_cache_policy</span></span><a class="headerlink" href="#confval-rbd_cache_policy" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>Select the caching policy for librbd.</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">writearound</span></code></p>
</dd>
<dt class="field-odd">valid choices<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">writethrough</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">writeback</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">writearound</span></code></p></li>
</ul>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_cache_writethrough_until_flush">
<span class="sig-name descname"><span class="pre">rbd_cache_writethrough_until_flush</span></span><a class="headerlink" href="#confval-rbd_cache_writethrough_until_flush" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>开始进入 write-through 模式，并且在首个 flush 请求收到后切回 write-back 模式。
启用它是个保守、但安全的策略， 以防 rbd 之上的虚拟机内核太老、不能发送 flush ， 像 2.6.32 之前的 Linux
内核带着的 <code class="docutils literal notranslate"><span class="pre">virtio</span></code> 驱动。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">true</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_cache_size">
<span class="sig-name descname"><span class="pre">rbd_cache_size</span></span><a class="headerlink" href="#confval-rbd_cache_size" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>每个卷的 RBD 客户端的缓存尺寸，字节。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">size</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">32Mi</span></code></p>
</dd>
<dt class="field-odd">policies<span class="colon">:</span></dt>
<dd class="field-odd"><p>write-back and write-through</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_cache_max_dirty">
<span class="sig-name descname"><span class="pre">rbd_cache_max_dirty</span></span><a class="headerlink" href="#confval-rbd_cache_max_dirty" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>使缓存触发写回的 <code class="docutils literal notranslate"><span class="pre">dirty</span></code> 临界点，单位为字节。 若为 <code class="docutils literal notranslate"><span class="pre">0</span></code> ，直接使用写透缓存。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">size</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">24Mi</span></code></p>
</dd>
<dt class="field-odd">constraint<span class="colon">:</span></dt>
<dd class="field-odd"><p>Must be less than <code class="docutils literal notranslate"><span class="pre">rbd_cache_size</span></code>.</p>
</dd>
<dt class="field-even">policies<span class="colon">:</span></dt>
<dd class="field-even"><p>write-around and write-back</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_cache_target_dirty">
<span class="sig-name descname"><span class="pre">rbd_cache_target_dirty</span></span><a class="headerlink" href="#confval-rbd_cache_target_dirty" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>缓存脏到什么程度（ <code class="docutils literal notranslate"><span class="pre">dirty</span> <span class="pre">target</span></code> ）开始写回数据。 不会阻塞到缓存的写动作。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">size</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">16Mi</span></code></p>
</dd>
<dt class="field-odd">constraint<span class="colon">:</span></dt>
<dd class="field-odd"><p>Must be less than <code class="docutils literal notranslate"><span class="pre">rbd_cache_max_dirty</span></code>.</p>
</dd>
<dt class="field-even">policies<span class="colon">:</span></dt>
<dd class="field-even"><p>write-back</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_cache_max_dirty_age">
<span class="sig-name descname"><span class="pre">rbd_cache_max_dirty_age</span></span><a class="headerlink" href="#confval-rbd_cache_max_dirty_age" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>写回开始前，脏数据在缓存中的暂存时间，单位为秒。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">float</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">1.0</span></code></p>
</dd>
<dt class="field-odd">policies<span class="colon">:</span></dt>
<dd class="field-odd"><p>write-back</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</section>
<section id="id4">
<h2>预读选项<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<p>librbd 支持预读或预取功能，以此优化小块的顺序读。此功能通常应该由访客操作系统（是虚拟机）处理，但是引导加载程序还不能进行高效的读。如果缓存功能停用、或策略为 write-around ，预读就会自动被禁用。</p>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_readahead_trigger_requests">
<span class="sig-name descname"><span class="pre">rbd_readahead_trigger_requests</span></span><a class="headerlink" href="#confval-rbd_readahead_trigger_requests" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>能够触发预读的顺序读请求数量。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">10</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_readahead_max_bytes">
<span class="sig-name descname"><span class="pre">rbd_readahead_max_bytes</span></span><a class="headerlink" href="#confval-rbd_readahead_max_bytes" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>预读请求最大尺寸， 0 是禁用预读。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">size</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">512Ki</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_readahead_disable_after_bytes">
<span class="sig-name descname"><span class="pre">rbd_readahead_disable_after_bytes</span></span><a class="headerlink" href="#confval-rbd_readahead_disable_after_bytes" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>从 RBD 映像读取这么多字节后， 预读功能将被禁用，直到关闭。 这样客户操作系统启动后就可以接管预读了， 设为 0 时则仍旧开着。</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">size</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">50Mi</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</section>
<section id="id5">
<h2>映像功能<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h2>
<p>RBD 支持一些高级功能，可以在创建映像时通过命令行指定，
或者用 <code class="docutils literal notranslate"><span class="pre">rbd_default_features</span> <span class="pre">=</span> <span class="pre">&lt;sum</span> <span class="pre">of</span> <span class="pre">feature</span> <span class="pre">numeric</span> <span class="pre">values&gt;</span></code> 或者
<code class="docutils literal notranslate"><span class="pre">rbd_default_features</span> <span class="pre">=</span> <span class="pre">&lt;comma-delimited</span> <span class="pre">list</span> <span class="pre">of</span> <span class="pre">CLI</span> <span class="pre">values&gt;</span></code> 来配置默认功能。</p>
<p><code class="docutils literal notranslate"><span class="pre">Layering</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>分层可以启用克隆功能。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>1</p>
</dd>
<dt class="field-odd">CLI 值<span class="colon">:</span></dt>
<dd class="field-odd"><p>layering</p>
</dd>
<dt class="field-even">哪版加入<span class="colon">:</span></dt>
<dd class="field-even"><p>v0.52 (Bobtail)</p>
</dd>
<dt class="field-odd">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-odd"><p>since v3.10</p>
</dd>
<dt class="field-even">默认值<span class="colon">:</span></dt>
<dd class="field-even"><p>yes</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Striping</span> <span class="pre">v2</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>条带化功能使得数据可以横跨多个对象。
条带化有助于顺序读写载荷的并行化。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>2</p>
</dd>
<dt class="field-odd">CLI 值<span class="colon">:</span></dt>
<dd class="field-odd"><p>striping</p>
</dd>
<dt class="field-even">哪版加入<span class="colon">:</span></dt>
<dd class="field-even"><p>v0.55 (Bobtail)</p>
</dd>
<dt class="field-odd">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-odd"><p>从 v3.10 起(只有默认的条带化， “fancy” 条带化在 v4.17 新加)</p>
</dd>
<dt class="field-even">默认值<span class="colon">:</span></dt>
<dd class="field-even"><p>yes</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Exclusive</span> <span class="pre">locking</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>启用后，客户端要写入一个对象前要先获取一个锁。
独占锁只适用于任何时候只能有一个客户端访问一个映像的情形。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>4</p>
</dd>
<dt class="field-odd">CLI 值<span class="colon">:</span></dt>
<dd class="field-odd"><p>exclusive-lock</p>
</dd>
<dt class="field-even">哪版加入<span class="colon">:</span></dt>
<dd class="field-even"><p>v0.92 (Hammer)</p>
</dd>
<dt class="field-odd">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-odd"><p>since v4.9</p>
</dd>
<dt class="field-even">默认值<span class="colon">:</span></dt>
<dd class="field-even"><p>yes</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Object</span> <span class="pre">map</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>对象表的支持情况依赖于独占锁。块设备是简配的，
意味着它只存储真的写入过的数据，也就是说，
它们是 <em>稀疏的（ sparse ）</em> 。支持对象表才能追踪哪些对象真的存在
（真的在设备上存储了数据）。对象表功能启用后可以加速的 I/O 操作有
克隆、导入和导出稀疏分布的映像、和删除。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>8</p>
</dd>
<dt class="field-odd">CLI 值<span class="colon">:</span></dt>
<dd class="field-odd"><p>object-map</p>
</dd>
<dt class="field-even">哪版加入<span class="colon">:</span></dt>
<dd class="field-even"><p>v0.93 (Hammer)</p>
</dd>
<dt class="field-odd">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-odd"><p>since v5.3</p>
</dd>
<dt class="field-even">默认值<span class="colon">:</span></dt>
<dd class="field-even"><p>yes</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Fast-diff</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>Fast-diff 功能依赖于对象表和独占锁。
它向对象表增加了另外一个属性，
使得它能够更快地生成一个映像的两个快照之间的差别。
也能更快地计算出一个快照或者卷宗的实际数据量（ <code class="docutils literal notranslate"><span class="pre">rbd</span> <span class="pre">du</span></code> ）。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>16</p>
</dd>
<dt class="field-odd">CLI 值<span class="colon">:</span></dt>
<dd class="field-odd"><p>fast-diff</p>
</dd>
<dt class="field-even">哪版加入<span class="colon">:</span></dt>
<dd class="field-even"><p>v9.0.1 (Infernalis)</p>
</dd>
<dt class="field-odd">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-odd"><p>since v5.3</p>
</dd>
<dt class="field-even">默认值<span class="colon">:</span></dt>
<dd class="field-even"><p>yes</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Deep-flatten</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>Deep-flatten 功能使得 <code class="docutils literal notranslate"><span class="pre">rbd</span> <span class="pre">flatten</span></code> 不但适用于映像自身，
还能适用于一个映像的所有快照。没有它，
映像的快照就必须依赖其父映像，
这样如果不先删除这些映像就无法删除它们的父映像。
Deep-flatten 功能能让一个父映像独立于它的克隆映像，
即使它们有快照也不影响，只是额外牺牲一些 OSD 设备空间而已。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>32</p>
</dd>
<dt class="field-odd">CLI 值<span class="colon">:</span></dt>
<dd class="field-odd"><p>deep-flatten</p>
</dd>
<dt class="field-even">哪版加入<span class="colon">:</span></dt>
<dd class="field-even"><p>v9.0.2 (Infernalis)</p>
</dd>
<dt class="field-odd">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-odd"><p>since v5.1</p>
</dd>
<dt class="field-even">默认值<span class="colon">:</span></dt>
<dd class="field-even"><p>yes</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Journaling</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>日志记录功能依赖于独占锁功能。此功能会按照发生顺序记录对一个映像做出的所有更改。
RBD 镜像功能能利用日志功能把一个崩溃一致映像复制到一个远程集群。
最好让 <code class="docutils literal notranslate"><span class="pre">rbd-mirror</span></code> 按需管理这个功能，
因为长期启用它会导致大量额外的 OSD 空间被消耗。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>64</p>
</dd>
<dt class="field-odd">CLI 值<span class="colon">:</span></dt>
<dd class="field-odd"><p>journaling</p>
</dd>
<dt class="field-even">哪版加入<span class="colon">:</span></dt>
<dd class="field-even"><p>v10.0.1 (Jewel)</p>
</dd>
<dt class="field-odd">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-odd"><p>no</p>
</dd>
<dt class="field-even">默认值<span class="colon">:</span></dt>
<dd class="field-even"><p>no</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Data</span> <span class="pre">pool</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>在纠删码存储池里，映像的数据块对象需要单独存储到映像元数据之外的存储池里。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>128</p>
</dd>
<dt class="field-odd">哪版加入<span class="colon">:</span></dt>
<dd class="field-odd"><p>v11.1.0 (Kraken)</p>
</dd>
<dt class="field-even">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-even"><p>since v4.11</p>
</dd>
<dt class="field-odd">默认值<span class="colon">:</span></dt>
<dd class="field-odd"><p>no</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Operations</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>用于限制较老的客户端对一个映像执行特定的维护性操作（比如克隆、创建快照）。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>256</p>
</dd>
<dt class="field-odd">哪版加入<span class="colon">:</span></dt>
<dd class="field-odd"><p>v13.0.2 (Mimic)</p>
</dd>
<dt class="field-even">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-even"><p>since v4.16</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Migrating</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>用于限制较老的客户端在迁移状态下打开一个映像。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>512</p>
</dd>
<dt class="field-odd">哪版加入<span class="colon">:</span></dt>
<dd class="field-odd"><p>v14.0.1 (Nautilus)</p>
</dd>
<dt class="field-even">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-even"><p>no</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">Non-primary</span></code></p>
<dl class="field-list simple">
<dt class="field-odd">描述<span class="colon">:</span></dt>
<dd class="field-odd"><p>用于限制利用基于快照的镜像功能对非主映像进行更改。</p>
</dd>
<dt class="field-even">内置值<span class="colon">:</span></dt>
<dd class="field-even"><p>1024</p>
</dd>
<dt class="field-odd">哪版加入<span class="colon">:</span></dt>
<dd class="field-odd"><p>v15.2.0 (Octopus)</p>
</dd>
<dt class="field-even">KRBD 支持情况<span class="colon">:</span></dt>
<dd class="field-even"><p>no</p>
</dd>
</dl>
</section>
<section id="qos">
<h2>QoS 选项<a class="headerlink" href="#qos" title="Permalink to this heading"></a></h2>
<p>librbd 支持以多种方式限制每个映像的 IO 。
这些方法都会应用到一个指定进程内的一个指定映像 - 同一映像用在多个地方，
例如两个独立的 VM ，会有相互独立的限制。</p>
<ul class="simple">
<li><p><strong>IOPS:</strong> 每秒的 I/O 数量（任意类型的 I/O ）</p></li>
<li><p><strong>read IOPS:</strong> 每秒的读出 I/O 数</p></li>
<li><p><strong>write IOPS:</strong> 每秒的写入 I/O 数</p></li>
<li><p><strong>bps:</strong> 每秒的字节数（任意类型的 I/O ）</p></li>
<li><p><strong>read bps:</strong> 每秒读出的字节数</p></li>
<li><p><strong>write bps:</strong> 每秒写入的字节数</p></li>
</ul>
<p>这些限制中的每一个都与其他的无关。默认都是关闭的。
每一种限制都是用一个令牌桶算法来减速 I/O 的，
还得能配置限额（一段时间内的平均速度）、
和短时间内（爆发秒数）潜在的高速率（一次爆发）。
当这些限制中的任意一个达到时，而且爆发量也用完了，
librbd 就会把那种类型的 I/O 速率压低到限额之下。</p>
<p>例如，假设读取 bps 配置成了 100MB ，而写入的没限制，
写入就可以尽快处理，而读取就会被减速到平均 100MB/s 。
如果设置了读取 bps 的爆发量是 150MB ，
而且读取爆发秒数设置成了 5 秒，
读操作可以在 150MB/s 下维持 5 秒，
然后再降低到 100MB/s 的限额。</p>
<p>下列选项可以配置这些减速阀：</p>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_iops_limit">
<span class="sig-name descname"><span class="pre">rbd_qos_iops_limit</span></span><a class="headerlink" href="#confval-rbd_qos_iops_limit" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired limit of IO operations per second</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_bps_limit">
<span class="sig-name descname"><span class="pre">rbd_qos_bps_limit</span></span><a class="headerlink" href="#confval-rbd_qos_bps_limit" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired limit of IO bytes per second</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_read_iops_limit">
<span class="sig-name descname"><span class="pre">rbd_qos_read_iops_limit</span></span><a class="headerlink" href="#confval-rbd_qos_read_iops_limit" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired limit of read operations per second</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_write_iops_limit">
<span class="sig-name descname"><span class="pre">rbd_qos_write_iops_limit</span></span><a class="headerlink" href="#confval-rbd_qos_write_iops_limit" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired limit of write operations per second</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_read_bps_limit">
<span class="sig-name descname"><span class="pre">rbd_qos_read_bps_limit</span></span><a class="headerlink" href="#confval-rbd_qos_read_bps_limit" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired limit of read bytes per second</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_write_bps_limit">
<span class="sig-name descname"><span class="pre">rbd_qos_write_bps_limit</span></span><a class="headerlink" href="#confval-rbd_qos_write_bps_limit" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired limit of write bytes per second</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_iops_burst">
<span class="sig-name descname"><span class="pre">rbd_qos_iops_burst</span></span><a class="headerlink" href="#confval-rbd_qos_iops_burst" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst limit of IO operations</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_bps_burst">
<span class="sig-name descname"><span class="pre">rbd_qos_bps_burst</span></span><a class="headerlink" href="#confval-rbd_qos_bps_burst" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst limit of IO bytes</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_read_iops_burst">
<span class="sig-name descname"><span class="pre">rbd_qos_read_iops_burst</span></span><a class="headerlink" href="#confval-rbd_qos_read_iops_burst" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst limit of read operations</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_write_iops_burst">
<span class="sig-name descname"><span class="pre">rbd_qos_write_iops_burst</span></span><a class="headerlink" href="#confval-rbd_qos_write_iops_burst" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst limit of write operations</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_read_bps_burst">
<span class="sig-name descname"><span class="pre">rbd_qos_read_bps_burst</span></span><a class="headerlink" href="#confval-rbd_qos_read_bps_burst" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst limit of read bytes</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_write_bps_burst">
<span class="sig-name descname"><span class="pre">rbd_qos_write_bps_burst</span></span><a class="headerlink" href="#confval-rbd_qos_write_bps_burst" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst limit of write bytes</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_iops_burst_seconds">
<span class="sig-name descname"><span class="pre">rbd_qos_iops_burst_seconds</span></span><a class="headerlink" href="#confval-rbd_qos_iops_burst_seconds" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst duration in seconds of IO operations</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
<dt class="field-odd">min<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_bps_burst_seconds">
<span class="sig-name descname"><span class="pre">rbd_qos_bps_burst_seconds</span></span><a class="headerlink" href="#confval-rbd_qos_bps_burst_seconds" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst duration in seconds of IO bytes</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
<dt class="field-odd">min<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_read_iops_burst_seconds">
<span class="sig-name descname"><span class="pre">rbd_qos_read_iops_burst_seconds</span></span><a class="headerlink" href="#confval-rbd_qos_read_iops_burst_seconds" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst duration in seconds of read operations</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
<dt class="field-odd">min<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_write_iops_burst_seconds">
<span class="sig-name descname"><span class="pre">rbd_qos_write_iops_burst_seconds</span></span><a class="headerlink" href="#confval-rbd_qos_write_iops_burst_seconds" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst duration in seconds of write operations</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
<dt class="field-odd">min<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_read_bps_burst_seconds">
<span class="sig-name descname"><span class="pre">rbd_qos_read_bps_burst_seconds</span></span><a class="headerlink" href="#confval-rbd_qos_read_bps_burst_seconds" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst duration in seconds of read bytes</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
<dt class="field-odd">min<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_write_bps_burst_seconds">
<span class="sig-name descname"><span class="pre">rbd_qos_write_bps_burst_seconds</span></span><a class="headerlink" href="#confval-rbd_qos_write_bps_burst_seconds" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>the desired burst duration in seconds of write bytes</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
<dt class="field-odd">min<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_schedule_tick_min">
<span class="sig-name descname"><span class="pre">rbd_qos_schedule_tick_min</span></span><a class="headerlink" href="#confval-rbd_qos_schedule_tick_min" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>This determines the minimum time (in milliseconds) at which I/Os can
become unblocked if the limit of a throttle is hit. In terms of the
token bucket algorithm, this is the minimum interval at which tokens
are added to the bucket.</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">uint</span></code></p>
</dd>
<dt class="field-even">default<span class="colon">:</span></dt>
<dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">50</span></code></p>
</dd>
<dt class="field-odd">min<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="std confval">
<dt class="sig sig-object std" id="confval-rbd_qos_exclude_ops">
<span class="sig-name descname"><span class="pre">rbd_qos_exclude_ops</span></span><a class="headerlink" href="#confval-rbd_qos_exclude_ops" title="Permalink to this definition"></a></dt>
<dd><blockquote>
<div><p>Optionally exclude ops from QoS. This setting accepts either an
integer bitmask value or comma-delimited string of op names. This
setting is always internally stored as an integer bitmask value. The
mapping between op bitmask value and op name is as follows: +1 -&gt;
read, +2 -&gt; write, +4 -&gt; discard, +8 -&gt; write_same, +16 -&gt;
compare_and_write</p>
<dl class="field-list simple">
<dt class="field-odd">type<span class="colon">:</span></dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</section>
</section>



<div id="support-the-ceph-foundation" class="admonition note">
  <p class="first admonition-title">Brought to you by the Ceph Foundation</p>
  <p class="last">The Ceph Documentation is a community resource funded and hosted by the non-profit <a href="https://ceph.io/en/foundation/">Ceph Foundation</a>. If you would like to support this and our other efforts, please consider <a href="https://ceph.io/en/foundation/join/">joining now</a>.</p>
</div>


           </div>
           
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="../rbd-encryption/" class="btn btn-neutral float-left" title="Image Encryption" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="../rbd-replay/" class="btn btn-neutral float-right" title="RBD 重放" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2016, Ceph authors and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0).</p>
  </div>

   

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>